home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Event;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.Rectangle;
- import java.awt.image.PixelGrabber;
- import java.io.DataInputStream;
-
- public class bob15 extends bob {
- public String imageName;
- // $FF: renamed from: iw int
- int field_0;
- // $FF: renamed from: ih int
- int field_1;
- public boolean fitSize;
- public boolean drawAtStartup;
- int[] sourcePix;
- int gwid;
- int gheg;
-
- public void cip() {
- try {
- super.m.p(true);
- if (this.sourcePix == null) {
- MediaTracker var1 = new MediaTracker(super.a);
- Image var2 = super.a.getImage(super.a.getCodeBase(), this.imageName);
- var1.addImage(var2, 0);
- var1.waitForID(0);
- this.field_0 = var2.getWidth(super.a);
- this.field_1 = var2.getHeight(super.a);
- this.sourcePix = new int[this.field_0 * this.field_1];
- PixelGrabber var3 = new PixelGrabber(var2, 0, 0, this.field_0, this.field_1, this.sourcePix, 0, this.field_0);
- var3.grabPixels();
- this.gwid = ((bob)this).gw();
- this.gheg = ((bob)this).gh();
- }
-
- super.m.p(false);
- } catch (Exception var4) {
- }
-
- }
-
- // $FF: renamed from: i () void
- public void method_0() {
- if (this.drawAtStartup) {
- ((bob)this).sl(1, 6000);
- }
-
- }
-
- // $FF: renamed from: ap () void
- public void method_1() {
- if (this.sourcePix == null) {
- this.cip();
- }
-
- int[] var1 = ((bob)this).gp();
- if (!this.fitSize && super.r % (double)360 == (double)0) {
- Rectangle var43 = super.tr.intersection(new Rectangle(0, 0, this.gwid, this.gheg));
- int var44 = (var43.y - super.tr.y) * this.field_0;
-
- for(int var46 = var43.y; var46 < var43.y + var43.height; ++var46) {
- int var47 = var43.x - super.tr.x;
- int var48 = var46 * this.gwid;
- if (var44 < this.field_1 * this.field_0) {
- for(int var49 = var43.x; var49 < var43.x + var43.width; ++var49) {
- if (var47 < this.field_0 && this.sourcePix[var47 + var44] <= -1) {
- var1[var49 + var48] = this.sourcePix[var47 + var44];
- }
-
- ++var47;
- }
- }
-
- var44 += this.field_0;
- }
- } else {
- int[] var2 = new int[4];
- int[] var3 = new int[4];
- int var4 = 0;
- int var5 = 16777215;
- int var6 = -16777215;
- int var7 = super.tr.width << 10;
- int var8 = super.tr.height << 10;
- double var9 = Math.cos(super.r * (Math.PI / 180D));
- double var11 = Math.sin(super.r * (Math.PI / 180D));
- int var13 = (int)((double)var7 * var9);
- int var14 = (int)((double)var7 * var11);
- int var15 = (int)((double)var8 * var9);
- int var16 = (int)((double)var8 * var11);
-
- for(int var17 = 0; var17 < 4; ++var17) {
- if (var17 != 0 && var17 != 3) {
- var2[var17] = var13;
- var3[var17] = -var14;
- } else {
- var2[var17] = -var13;
- var3[var17] = var14;
- }
-
- if (var17 < 2) {
- var2[var17] -= var16;
- var3[var17] -= var15;
- } else {
- var2[var17] += var16;
- var3[var17] += var15;
- }
-
- var2[var17] = (var2[var17] + var7 >> 11) + super.tr.x;
- var3[var17] = (var3[var17] + var8 >> 11) + super.tr.y;
- if (var3[var17] < var5) {
- var4 = var17;
- var5 = var3[var17];
- }
-
- if (var3[var17] > var6) {
- var6 = var3[var17];
- }
- }
-
- int var18 = (this.fitSize ? this.field_0 : super.tr.width) - 1;
- int var19 = (this.fitSize ? this.field_1 : super.tr.height) - 1;
- int[] var20 = new int[]{0, var18, var18, 0};
- int[] var21 = new int[]{0, 0, var19, var19};
- int var24 = var4;
- int var22 = var4;
- int var30 = 0;
- int var28 = 0;
- int var29 = 0;
- int var27 = 0;
- int var26 = 0;
- int var25 = 0;
- var8 = Math.max(super.tr.height, this.field_1);
- int[] var31 = new int[var8];
-
- for(int var32 = 0; var32 < var8; ++var32) {
- if (var32 >= this.field_0 * this.field_1) {
- var31[var32] = (this.field_1 - 1) * this.field_0;
- } else {
- var31[var32] = var32 * this.field_0;
- }
- }
-
- int var33 = var5 * this.gwid;
- if (var6 > this.gheg) {
- var6 = this.gheg;
- }
-
- for(int var34 = var5; var34 < var6; var33 += this.gwid) {
- if (var3[var22] == var34) {
- do {
- var4 = var22--;
- if (var22 == -1) {
- var22 = 3;
- }
- } while(var3[var22] == var34);
-
- var13 = var2[var4] << 16;
- var14 = (var2[var22] - var2[var4] << 16) / (var3[var22] - var3[var4]);
- var7 = var20[var4] << 16;
- var8 = var21[var4] << 16;
- var25 = (var20[var22] - var20[var4] << 16) / (var3[var22] - var3[var4]);
- var26 = (var21[var22] - var21[var4] << 16) / (var3[var22] - var3[var4]);
- }
-
- if (var3[var24] == var34) {
- int var23;
- do {
- var23 = var24++;
- if (var24 == 4) {
- var24 = 0;
- }
- } while(var3[var24] == var34);
-
- var15 = var2[var23] << 16;
- var16 = (var2[var24] - var2[var23] << 16) / (var3[var24] - var3[var23]);
- var27 = var20[var23] << 16;
- var28 = var21[var23] << 16;
- var29 = (var20[var24] - var20[var23] << 16) / (var3[var24] - var3[var23]);
- var30 = (var21[var24] - var21[var23] << 16) / (var3[var24] - var3[var23]);
- }
-
- if (var34 >= 0) {
- int var35 = var13 >> 16;
- int var36 = var15 >> 16;
- if (var35 < var36) {
- int var37 = var7;
- int var38 = (var27 - var7) / (var36 - var35);
- int var39 = var8;
- int var40 = (var28 - var8) / (var36 - var35);
- if (var35 < 0) {
- var37 = var7 - var38 * var35;
- var39 = var8 - var40 * var35;
- var35 = 0;
- }
-
- if (var36 > this.gwid) {
- var36 = this.gwid;
- }
-
- for(int var41 = var35 < 0 ? 0 : var35; var41 < var36; ++var41) {
- if (var37 >> 16 < this.field_0 && var39 >> 16 < this.field_1) {
- int var42 = this.sourcePix[(var37 >> 16) + var31[var39 >> 16]];
- if (var42 <= -1) {
- var1[var41 + var33] = var42;
- }
- }
-
- var37 += var38;
- var39 += var40;
- }
- }
- }
-
- var8 += var26;
- var28 += var30;
- var13 += var14;
- var15 += var16;
- var7 += var25;
- var27 += var29;
- ++var34;
- }
- }
-
- }
-
- // $FF: renamed from: he (java.awt.Event) void
- public void method_2(Event var1) {
- super.he(var1);
- if (var1.id == 6000) {
- this.method_1();
- } else if (var1.id == 1) {
- super.r = ((bob10)var1.arg).value;
- }
-
- }
-
- // $FF: renamed from: rd (java.io.DataInputStream) void
- public void method_3(DataInputStream var1) {
- try {
- this.imageName = var1.readUTF();
- this.fitSize = var1.readBoolean();
- this.drawAtStartup = var1.readBoolean();
- } catch (Exception var3) {
- }
-
- }
- }
-